#fortran 90
Explore tagged Tumblr posts
Note
Writing fortran77 is a game all on its own. Baldur's Gate 3 wishes it could be as engaging. So many horrible, horrible things you can do to matrices.
yeah the ideal scenario for this game maker program is that it has JUST enough features to make a basic, decent game. no frills. your average gbafe :v. but if you want to do anything else you get to have matrix fun times.
#i actually use very little fortran (and what i do use is 90) but it would be really funny. i would go with the Original but then I'D suffer#my good friend is c#c is also my enemy but don't worry about that right now.
12 notes
·
View notes
Text
So yesterday I didn't do the best calorie wise. I believe I ended up eating CLOSE, but still over maintenance by about 250 calories. So not terrible honestly considering this week is such a huge week for me. Also, I did my hour of cycling yesterday which was great. Also, helped keep me from going even more over maintenance. But also, cycling just feels great!
I'm also thinking today I might as well plan to go over calories. I have a late laaaaate night planned considering the final slides for my defense and my dissertation both have to be completed tonight. That way tomorrow afternoon my committee and I can discuss glaring formatting issues or major edits needed prior to my defense friday. Which will give me all of Thursday for corrections, practicing my defense, printing/binding my dissertation, printing slides, placing an order for coffee and sweets to pick up Friday prior to my defense.
So I got this. But I know I'll be stressed and up extremely late and possibly an all nighter so adding calorie counting to today would just add even more stress. So I'll remember that one bad day this week isn't going to ruin me. I'll still be mindful of what I eat for the rest of the day considering this morning prior to a 2 hour nap (since I pulled an all nighter last night) I ate 3 dark chocolate biscottis and 8 dark chocolate Milano cookies. 😂 so I'm already at 710 for the day. So there's a chance to still end slightly above maintenance if I'm smart about my next two meals.
I'm planning on a raspberry vanilla yogurt oat bowl for one (350ish) and maybe a big tuna salad sandwich (375ish) and a blueberry vanilla yogurt oat bowl to finish my all nighter out (450ish). This should keep me around maintenance but also satisfied.
Wish me luck! When I finish my defense, expect lots of experimental and simulation posts sharing the non-security controlled images. They're very cool to me and I think others will think so too. 😊
Also, side note, when I tell people my simulations run in Fortran people always go WOAH! That's old. Haha.
Here's some pictures of my dinner last night. I highly recommend this. Feel free to change the tuna to chicken if you'd like or a vegan alternative. I love pan-fried and marinated crispy tofu as an alternative.
This meal was (560) and incredibly satisfying. I did more than a serving of the pasta because 56 g made me sad to see so I did 90 g instead.
Here's the pasta I used. I recommend following the cooking time to the full 14 minutes otherwise it does have more of an odd texture, but it's really good. It's pricier, so definitely more of an occasional thing for me.

This is tuna, pasta (pictured above), green olives, capers, kalamata olives, spinach and spring mix, lemon juice, crumbled goat cheese.
Protein: 61g, Fiber: 14

#diet#weight loss#weight loss journey#grad school#weight loss diet#mechanical engineering#healthy weight loss#calorie deficit diet#diet food#healthy diet#dissertation defense#dissertation#doctorate#diet plan#dieting#weightloss#losing weight#healthy weightloss#cycling
3 notes
·
View notes
Text
The French Fortran Code From Hell
My first job held the grandiose-sounding title of Technical Consulting Engineer, which was a very fancy way of saying "glorified customer support with some additional maintenance tasks."
I was assigned to a piece of software that was used to help people make their code more efficient. Among my duties were: creating documentation and how-to tutorials for the software; answering support tickets for the software; giving lectures on the software; and providing hands-on assistance in what we called Dungeons.
Dungeons were what happened when you locked a bunch of engineers in a windowless room with a handful of TCEs and lunch catering and let them go at their code with the software for the entire duration of the day, completely dead to the outside world - often repeating this process for several days.
I was in quite a few Dungeons during my three horrible years at that soul-sucking job. I want to be clear: the vast majority of this job was the soul-crushing tedium and agony of answering support tickets. The software in question was... not great at providing helpful error messages. 90% of everything resulted in "There's a problem with your license file" even when the license file was fine. So debugging was always an ordeal.
The best ones, strangely enough, were always the tickets from the military, because everything was classified. Anything that happens on their computer is classified. What does the error message say? That's classified. Can you send me the log output? That's classified. What does your license file say on line three? That's classified. You might wonder how this makes anything better for the poor sap trying to debug it. See, when they can't provide you any info, all you can do is send them the entire support script and tell them to go through the steps themselves. Then they message you back a while later politely telling you that it worked and you can now close the ticket. On the other end of the spectrum you had individual customers who bought the software for their own use, and some of these people were real pieces of work. Anyone who has worked customer-facing jobs knows the kind of person I'm talking about.
Anyway, Dungeons were more of an occasional interruption to the never-ending slog of support tickets, and usually a very welcome interruption.
But a couple times it was... let's say interesting. And both of these stories, oddly enough, involve the French.
The first one was the unfortunate time I was in a Dungeon full of engineers who had flown in from France - Paris specifically if I recall correctly. On the 15th of April, 2019. I received a text from my mother with rather alarming news, and thus I had to be the one to inform the room full of French engineers that Notre Dame Cathedral was actively on fire. Needless to say, very little got done that day.
The second one was just plain painful for me. The software in question supports code in both C++ (commonly used language, good) and Fortran (relic from the 1950s, extremely different from most programming languages). It was fairly rare for us to actually deal with the Fortran side of it, however.
But on this occasion, the French engineers I was in a Dungeon with wanted my help optimizing their Fortran code. Fine, I'm not exactly "fluent" but I can probably get the gist of it, I thought.
I was wrong.
You see, this Fortran code was auto-generated. It was not written by human hands and was not intended to be read by human eyes. It contained statements that were hundreds of lines long. Not functions, statements. To those not initiated in programming, this is akin to a run-on sentence that lasts 38 pages. It had variables with such helpful names as xyz and abc. Likewise, for the uninitiated, this is akin to having a pharmacy where all of the bottles are labeled "Medicine, probably."
It had, at some point, been minimally edited, or at least annotated, by humans, however. Because there were a very small handful of comments!
...Which were in French.
I do not speak French.
The French engineers did not know how to translate French Jargon into English.
Obviously, our company did not ever want us to say "we can't." But in this one case, nobody took issue when I looked these French engineers in the eye and just told them "I'm sorry, but this code is beyond our ability to optimize. It is beyond anyone's ability to optimize. It must be cast into the fire and destroyed; and may god help you."
#programming#this is longer than I expected#what do I even tag this with#stories from paladin's personal life
2 notes
·
View notes
Note
Ok so I thought about your point about different programming languages and I think I have to disagree. Obviously, nobody's gonna be super good at all of them (or even more that about 5 at a time tops) and sure, if you're unusually proficient in a specific one, that's still gonna make a difference and I'm not denying that.
But here's the thing: most modern languages are pretty easy to pick up if you already know a few. They're designed that way, we have widely accepted standards now and yes there's hard to learn languages we'll probably always need (Assembly 😔) and also older (thus not adhering to modern standards) ones that are still used today due to other factors (COBOL 🙄) but if you pick up a (non-esotheric) language made in the 90s or after and you've coded in another modern language before, you'll probably be reasonably confident within a week or two and reading code will usually be possible more or less immediately, with the occasional google ofc but like 75% of coding is googling anyway.
Given that most sci-fi is set in the future, often the far future, I think it's reasonable to speculate this will only get easier in times to come. Languages whose continued use is caused by circumstance will eventually be replaced and languages we need but are hard to learn will be reduced to a minimum with most of it being replaced by more accessible languages. This has already been happening. For instance, just under 2% of version 4.9 of the Linux kernel source code is written in assembly; more than 97% is written in C. I directly cribbed that last sentence from Wikipedia, it's a very succinct summary.
So while I still call bullshit on the way trek treats xenolinguists (I'm especially thinking Hoshi rn) that's pretty much the speed of picking up a new language a sci-fi programmer would probably have, especially considering IDEs would also develop further, making anyone with programming experience able to code medium to complex stuff in a new language within a day or so, even if it'd take them longer to code it than someone with a lot of experience in that specific language.
I realise this isn't your field and so probably not very interesting to you but I've been thinking about it a lot since your reply and I just wanted to say this ig. Maybe some of your followers will care, dunno.
-Levi
no you’re not wrong! i code in r, python, and fortran as part of my research and learning the latter two after becoming proficient in r was a lot easier than learning r initially. i didn’t phrase it very well but my thought process was more along the lines of, since this is scifi we’re talking about, working with an alien programming language, especially one from a civilization you’ve never encountered before, would be more like trying to learn a non-standardized language
6 notes
·
View notes
Text

Jak zaczęła się era komputerów?
Technologie informacyjne mają swoje korzenie w odległej przeszłości, kiedy ludzkość zaczęła poszukiwać metod gromadzenia, przetwarzania i przekazywania informacji. Od pierwszych urządzeń mechanicznych, poprzez wynalezienie komputerów, aż po rozwój internetu, postęp w tej dziedzinie przyczynił się do rewolucji w sposobie funkcjonowania społeczeństw i gospodarek.
Pierwsze próby automatyzacji obliczeń
Początki technologii informacyjnych sięgają czasów starożytnych, kiedy powstały pierwsze narzędzia ułatwiające liczenie, takie jak abakus. Przez wiele wieków ludzie opierali się na metodach manualnych, aż do XVII wieku, kiedy wynaleziono pierwsze mechaniczne kalkulatory, umożliwiające automatyzację podstawowych operacji matematycznych. W XIX wieku Charles Babbage opracował koncepcję maszyny analitycznej, która uznawana jest za pierwowzór współczesnych komputerów. Jego projekt, choć nigdy nie został w pełni zrealizowany, przewidywał zastosowanie programowalnych instrukcji oraz pamięci operacyjnej.
Rozwój maszyn liczących i narodziny komputerów
XX wiek przyniósł dynamiczny rozwój technologii informacyjnych, począwszy od zaawansowanych maszyn liczących po pierwsze komputery elektroniczne. W latach 30. i 40. XX wieku powstały pierwsze elektromechaniczne urządzenia obliczeniowe, takie jak maszyna Zuse Z3 czy komputer Colossus, wykorzystywany do łamania kodów Enigmy podczas II wojny światowej. Przełomowym momentem był jednak ENIAC, skonstruowany w 1946 roku, który był pierwszym w pełni elektronicznym komputerem ogólnego przeznaczenia.
Era tranzystorów i miniaturyzacja komputerów
Lata 50. i 60. to okres wielkich zmian w dziedzinie technologii informacyjnych. Wynalezienie tranzystora zastąpiło ogromne i energochłonne lampy elektronowe, co pozwoliło na budowę bardziej wydajnych i mniejszych komputerów. Pojawiły się pierwsze komputery biznesowe, a programowanie stało się bardziej dostępne dzięki rozwijającym się językom programowania, takim jak Fortran i COBOL. W latach 70. nastąpiła dalsza miniaturyzacja, a rozwój mikroprocesorów przyczynił się do narodzin pierwszych komputerów osobistych, które zapoczątkowały rewolucję informatyczną.
Początki internetu i globalna wymiana informacji
Jednym z kluczowych momentów w historii technologii informacyjnych było stworzenie internetu. W latach 60. w Stanach Zjednoczonych powstała sieć ARPANET, która stała się fundamentem dzisiejszego internetu. Początkowo miała ona zastosowanie militarne i akademickie, ale w kolejnych dekadach zaczęła się upowszechniać, łącząc instytucje naukowe i ostatecznie zwykłych użytkowników. W latach 90. rozwój przeglądarek internetowych oraz stron WWW umożliwił gwałtowny wzrost popularności internetu, co na zawsze zmieniło sposób, w jaki ludzie komunikują się i uzyskują informacje.
Podsumowanie – początek cyfrowej rewolucji
Początki technologii informacyjnych były długim procesem, który rozpoczął się od prostych narzędzi do liczenia, a zakończył się stworzeniem nowoczesnych systemów komputerowych i internetu. Każda kolejna dekada przynosiła nowe przełomy, które stopniowo zmieniały świat. Dziś technologie informacyjne są fundamentem nowoczesnych społeczeństw i gospodarek, a ich rozwój wciąż trwa, prowadząc do kolejnych innowacji i cyfrowej transformacji.
0 notes
Text
ISBN: 978-960-645-666-4 Συγγραφέας: Αλέξανδρος Σ. Καράκος Εκδότης: Κλειδάριθμος Σελίδες: 486 Ημερομηνία Έκδοσης: 2024-12-01 Διαστάσεις: 24 x 17 Εξώφυλλο: Χαρτόδετο
0 notes
Text
Drawing Machines #10
Michael Noll
#inspiração
A. Michael Noll é reconhecido como um precursor na arte computacional e animação, além de ter desempenhado funções diversas e notáveis ao longo de sua carreira. Foi Assessor de Ciências na Casa Branca, ocupou cargos de gestão e planeamento na AT&T, trabalhou como professor universitário e administrador, além de se destacar como autor, colunista, crítico de música clássica, arquivista e biógrafo. A sua produção literária mantém-se ativa, com foco em telecomunicações e temas relacionados.
Durante cerca de 15 anos, Noll realizou investigações fundamentais na Bell Labs, sendo pioneiro no uso de computadores digitais nas artes visuais e na animação estereoscópica, aplicando esses avanços tanto no domínio artístico como científico. No início da década de 1970, assumiu um papel de liderança na AT&T, identificando oportunidades para o desenvolvimento de novos produtos e serviços. O seu contributo académico inclui mais de 90 artigos publicados, seis patentes registadas e a autoria de 12 livros sobre diversos aspectos das comunicações. Desde 1990, produziu mais de 130 artigos de opinião em colunas de jornais de grande circulação e empresariais, além de mais de 30 críticas de música clássica para a Sociedade Clássica de Nova Jersey.

autor: A. Michael Noll titulo :Gaussian-Quadratic
Ano:1963 material: drawing, b/w, computer generated. Ink on paperSize: 19,5 × 13 cm (graphic), 27,8 × 21,8 cm (sheet) FORTRAN on IBM 7090, printed with Stromberg-Carlson 4020 microfilm-plotter
" In general, completely random two-dimensional pictures are not very interesting. However the computer is also able to mix together randomness and order in mathematically specified proportions to achieve a desired effect. The intial attempts at such mixing used Gaussian randomness for the X-axis co-ordinates but introduced a specified and non-rendom mathematical function for genrating the Y-axis co-ordinates. Gaussian Quadratic is a particularly good example of this mixing approach. Ninety lines join together 100 points whose horizontal positions are Gaussian. The vertical positions increase quadratically, i.e. the first position has a vertical position from the bottom of the picture given by 1^2 +5 * 1, the second point 2^2 + 5 * 2 , the third point 3^2 + 5 * 3, etc. The maximum picture size is limited to 1024 units wide by 1024 units high, and thus the 30th point would be off the top of the picture (30^2 + 5 * 30 = 1050 ) . To prevent this from happening, the vertical positions at the top are reflected to the bottom of the picture and then continue to rise. the result is a line that starts at the bottom of the picture and randomly zigzags to the top in continually increasing steps; at the top the line is ’ translated’ to the bottomto continue it’s rise. The standard derivation of the Gaussian density is 150. "
Michael A. Noll Referred from Page 153 Cybernetics, Arts and Ideas
0 notes
Text
STARTUPS AND EVERYTHING
In the best case. If you know you have a meeting in an hour, you don't even start working on a program, it's more efficient to work in. The first hint I had that teachers weren't omniscient came in sixth grade, after my father contradicted something I'd learned in school. There's always something coming on the next hour; the only question is what. Perl also retains this distinction, but deals with it in typical Perl fashion by letting you omit returns. Every engraver since Durer has had to live in his shadow. Few realize that this also describes a flaw in the way of the future.
Fortran I because you could not nest statements. The surprising thing is how many, and how likely they are to their standard m. What this means for us, as people interested in the question, how do you design a good programming language? The next generation of business computer. I know that naming companies is a distinct skill orthogonal to the ones used in convincing investors, just as we do a birthmark. It didn't seem to harm us. I hardly ever go back and read stuff I write down in notebooks. And since one person can only manage so many deals, each deal has to be treated as a threat to a company's survival. I'm not saying that you want to know what they're doing, their lawyers can't. The most famous example is Google, which initially made money by licensing search to sites like Yahoo.
The typical stove has four burners arranged in a square like the burners. Though novice investors seem unthreatening they can be. The more people who have to like a new idea, the more willing they seem to be facing off in a kind of limit that mainstream languages are approaching asymptotically—does that mean you should actually use it to write software? VCs that founders hate. I used to think I wanted to know everything. When Lisp first appeared, these ideas were far removed from ordinary programming practice, which was discovered in 1960 and is still the fastest general-purpose sort. The worst case scenario is the long no, the no that comes after months of meetings. The famous scientists I remember were Einstein, Marie Curie, and George Washington Carver with Einstein misled us not only about science, but it's not part of any specific science; it's literally meta-physics in our sense of meta.
The most dangerous thing about investors is their indecisiveness. If you look at these languages in order, Java, and Visual Basic—it is not clear whether you can actually solve this problem in other languages, of course. The biggest startup ideas are. There is no core of knowledge one must master. The latest intellectual property laws impose unprecedented restrictions on the sort of people will tell you that you should keep working on your startup. Whatever you make will have to stop and pant for a while to grasp this, but reacted simply by not studying philosophy, rather than carry a single unnecessary ounce. I don't mean that languages have to be done? A of the Metaphysics implies that philosophy should be useful too.
It will seem preposterous to future generations that we wait till patients have physical symptoms to be diagnosed with cancer. Telling a child they have a particular ethnic or religious identity is one of those ideas that's like an irresistible force meeting an immovable object. Macros in the Lisp sense are still, as far as I can tell it isn't. But in Lisp the functions and macros I wrote were just like those that made up the language itself. Cultivate them. Doctors discovered that several of his arteries were over 90% blocked to learn that the world is quiet and warm and safe. Complaining that VCs were jerks. In the movie Wall Street, Gordon Gekko ridicules a company overloaded with vice presidents.
Older societies told kids they had bad judgement, but modern parents want their children to be confident. So if one group abandons this territory, there will also be a need for such infrastructure companies. How could I have missed something so obvious for so long. Most parents use words when talking to other adults that they wouldn't want their kids using. The best way to handle a frightened 10 year old bothers me so much is not just that he'd be annoying, but that it's so much harder than they expected. It didn't work out as I'd hoped. For someone on the maker's schedule? Partly because some companies use mechanisms to prevent copying. And since no one is going to visit Greylock, the famous Boston VCs. I read it out loud and fix everything that doesn't sound like conversation. This leads to the phenomenon known in the Valley. Certainly, people who want a deep understanding of what you're doing.
Users don't need benchmarks to run fast. An optimization marketplace would be a shortcut straight to wisdom. But when you do something so clever that you somehow beat the system, that's also called a hack. There must be a better solution. In past times people lied to kids about: they're the questions you answer Ask your parents. To be fixed. The buildings are old though increasingly they are being torn down and replaced with generic McMansions and the trees are tall. His answer was simply no. Naming is a completely separate skill from those you need to, but to study it as an act of rebellion against the organizations that employ them. How could I have missed something so obvious for so long. Our generation wants to get paid up front.
The most interesting question here may be what high res fundraising will do to the world of programming languages, a lot of the worst ones were designed for other people to use. And isn't popularity to some extent its own justification? Not just to solve the problem in Python, writing either def foo n: s n def bar i: s 0 i return s 0 return bar Python users might legitimately ask why they can't just write def foo n: lambda i: n i and my guess is that the spinal cord has the situation under control. In the best case, though. I had several motives, some more honorable than others. I'll do without books. That must also mystify outsiders. Now that I've seen parents managing the subject, I can work in noisy places. Meetings cost them more. If you leave a project for a few months ago we replaced it with an iMac bolted to the wall. I've found that whenever I've been able to write the software that made them want to buy us. Have low expectations.
Thanks to Bob Frankston, Trevor Blackwell, and Travis Deyle for reading a previous draft.
#automatically generated text#Markov chains#Paul Graham#Python#Patrick Mooney#square#object#order#Meetings#teachers#Partly#Marie#school#software#course#sense#deal#Boston#ethnic#bar#group#everything
0 notes
Text
Wie man Sicherheitstests für AngularJS mit Hilfe von OWASP ZAP durchführt

Schon 2018 hatte ich mich sehr umfassend mit dem Thema Voyager 1 und Voyager 2 beschäftigt. Dabei ging es um eine „fixe“ Idee, dass man das Board System welches Fortran beruht auf Python umswitcht. Ich habe in diesem Beitrag von 2018 dargelegt, wie die einzelnen Komponenten aufgebaut sind, wie man eventuell hier Python zum Einsatz bringen könnte. Aber nachhaltig auch festgestellt, dass ein Umstieg auf Python eventuell sogar schädlicher wäre. https://www.dev-crowd.com/2018/12/22/retro-engineering-am-beispiel-voyager-1-und-voyager-2-mission/ Betrachtet man die Meldung bezüglich des „falschen Befehls“ der an Voyager 2 versendet wurde, so hätte man das in einer entsprechenden Emulation eigentlich feststellen müssen, dass eben dieser Befehl klar falsch ist. Bisher bin ich immer davon ausgegangen, dass so etwas in einer Emulation auf einem Environment stattfindet. Denn wie bei allen uns bekannten Sprachen, die man entsprechend einsetzt, gibt es entsprechende Testframeworks, die entsprechende Emulationen ausführen. Die Antenne von »Voyager 2« zeigt nicht mehr exakt zur Erde, der Kontakt ist dadurch unterbrochen. Der Grund: ein falscher Befehl. Doch im Oktober könnte die Kommunikation wieder aufgenommen werden. Quelle: https://www.spiegel.de/wissenschaft/nasa-verliert-kontakt-zu-sonde-voyager-2-wegen-eines-falschen-befehls-a-2c41883b-2e28-4413-a40b-075c59c10ce1 Hier eine weitere Meldung: Der Kontakt zu der Sonde war am 21. Juli 2023 abgebrochen, nachdem "eine Serie geplanter Befehle" an sie gesendet worden war. Die hatten dazu geführt, dass sich die Antenne um 2 Grad von der Erde wegdrehte, weshalb kein Kontakt mehr möglich war. Quelle: https://www.golem.de/news/raumfahrt-nasa-empfaengt-signal-von-voyager-2-2308-176370.html Fortran spielte in den frühen Jahren der Raumfahrt und insbesondere bei der Entwicklung von Raumsonden eine wichtige Rolle. Das Voyager-Programm wurde in den 1970er Jahren gestartet, als Fortran immer noch eine der vorherrschenden Programmiersprachen für wissenschaftliche und technische Anwendungen war. Und Fortan wird bis heute gerade auch im wissenschaftlichen Umfeld immer noch genutzt! Welche Fortran Versionen gibt es? - Fortran I (1957): Die erste Version von Fortran wurde 1957 von IBM entwickelt. Sie wurde für den IBM 704 Computer entwickelt und war die erste höhere Programmiersprache überhaupt. Fortran I unterstützte die grundlegenden Konzepte der Programmierung, aber es gab noch keine Unterprogramme (keine Unterstützung für Unterprogramme wie Funktionen oder Subroutinen). - Fortran II (1958): Fortran II wurde 1958 veröffentlicht und fügte einige neue Funktionen hinzu, darunter Unterprogramme und die Möglichkeit, Unterprogramme in anderen Unterprogrammen aufzurufen. Es war eine verbesserte Version von Fortran I. - Fortran IV (1962): Fortran IV war eine weiter verbesserte Version von Fortran und wurde 1962 veröffentlicht. Es führte neue Funktionen wie logische Variablen, DO-Schleifen und FORMAT-Anweisungen ein, um die Ausgabe zu formatieren. - Fortran 66: Fortran 66, auch bekannt als Fortran IV oder Fortran 66 Standard, wurde 1966 eingeführt. Es war die erste offizielle Version der Sprache mit einem standardisierten Sprachumfang. Fortran 66 führte neue Funktionen wie das IF-THEN-ELSE-Konstrukt ein und standardisierte einige vorhandene Sprachkonstrukte. - Fortran 77: Fortran 77, auch bekannt als Fortran 1977 Standard, wurde 1977 veröffentlicht. Es war eine bedeutende Aktualisierung und erweiterte den Funktionsumfang von Fortran erheblich. Fortran 77 führte Zeichenkettenverarbeitung, dynamische Speicherzuweisung (mit der ALLOCATE-Anweisung) und verbesserte Array-Funktionen ein. - Fortran 90: Fortran 90 wurde 1991 veröffentlicht und brachte wichtige Erweiterungen in die Sprache. Es führte den freien Formatierungsstil ein, verbesserte die Array-Unterstützung (einschließlich dynamischer Arrays und Array-Schnittoperationen), fügte neue Sprachkonstrukte wie MODULES, POINTERs und DO WHILE-Schleifen hinzu und ermöglichte rekursive Unterprogramme. - Fortran 95: Fortran 95 wurde 1997 als geringfügige Aktualisierung von Fortran 90 veröffentlicht. Es behebt einige Unklarheiten und Fehler in Fortran 90 und fügt einige neue Funktionen hinzu, wie beispielsweise Verbesserungen bei der ALLOCATE-Anweisung und Unterstützung für den CHARACTER-Datentyp mit variabler Länge. - Fortran 2003, Fortran 2008, Fortran 2018: Diese Versionen sind weitere Erweiterungen von Fortran, die neue Funktionen und Verbesserungen in die Sprache einbringen, wie z. B. Verbesserungen bei der Behandlung von Zeichenketten, Verbesserungen bei der parallelen Programmierung (Fortran 2008) und viele andere Funktionen.
Testframeworks für Fortran
In der Welt von Fortran gibt es mehrere Testframeworks, die verwendet werden können, um Unit-Tests für Fortran-Code durchzuführen. Wobei man sagen muss das Voyger 2 in Teilen noch auf Fortran 77 beruht aber auch Fortran 90. Hier sind einige beliebte Testframeworks, es gibt aber weitaus mehr unter anderem entwickelt durch NASA Mitarbeiter: Testframework Details Weiterführende Informationen Alternative FRUIT (Fortran Unit Tester): FRUIT ist eines der ältesten Testframeworks für Fortran und wird häufig verwendet, um Unit-Tests für Fortran-77-Code zu schreiben. Es unterstützt die Erstellung von Testsuiten und Assertions, um die Funktionalität von Fortran-Routinen zu überprüfen. https://github.com/mortele/FRUIT FUnit FUnit ist ein moderneres Testframework für Fortran, das speziell für die Erstellung von Unit-Tests in Fortran entwickelt wurde. Es unterstützt Fortran 90 und höher und bietet eine Vielzahl von Testfunktionen und Assertions. https://fortranwiki.org/fortran/show/FUnit Fortran Unit Test (FUT): FUT ist ein weiteres Testframework für Fortran, das es ermöglicht, Unit-Tests für Fortran-Code zu schreiben. Es bietet Funktionen wie Assertions und die Möglichkeit, Testergebnisse zu protokollieren. https://github.com/dongli/fortran-unit-test PFUnit (Parallel Fortran Unit Test): PFUnit ist ein Testframework, das speziell für den Test paralleler Fortran-Code entwickelt wurde. Es ermöglicht die Durchführung von Tests für parallele Funktionen und Routinen. https://github.com/Goddard-Fortran-Ecosystem/pFUnit Fortran Test Framework (FTF): Das Fortran Test Framework ist ein einfaches und leichtgewichtiges Testframework für Fortran. Es unterstützt die Erstellung von Unit-Tests und Assertions. https://github.com/agforero/FTFramework Ein Flussdiagramm zur Beschreibung der Laufzeit:
ForFUnit: ForFUnit ist ein weiteres Testframework für Fortran, das es ermöglicht, Unit-Tests für Fortran-Code zu schreiben. Es bietet Funktionen wie Assertions und die Möglichkeit, Testergebnisse zu protokollieren. Fortuno Benutzerfreundliches, flexibles und erweiterbares objektorientiertes Fortran-Unit-Testing-Framework zum Testen von seriellen, MPI-parallelisierten und Coarray-parallelisierten Anwendungen. https://github.com/aradi/fortuno
Aufbau von Testszenarien in Fortran
In Fortran gibt es keine eingebauten Testframeworks oder Assertions wie in einigen modernen Programmiersprachen. Daher müssen Entwickler Testroutinen und Assertions oft manuell implementieren. Hier ist ein einfaches Beispiel, wie ihr eine Testroutine mit Assertions in Fortran erstellen könnt: PROGRAM TestExample IMPLICIT NONE ! Function to be tested REAL FUNCTION Square(x) REAL, INTENT(IN) :: x Square = x * x END FUNCTION Square ! Test routine SUBROUTINE RunTests INTEGER :: numTests, i REAL :: input, result, expected ! Array of test cases: (input, expected result) REAL, DIMENSION(3, 2) :: testCases testCases = RESHAPE(, ) numTests = SIZE(testCases, 1) DO i = 1, numTests input = testCases(i, 1) expected = testCases(i, 2) result = Square(input) ! Assertion IF (result == expected) THEN WRITE(*, '(A, F6.2, A, F6.2)') 'Test ', input, ': Passed. Result = ', result ELSE WRITE(*, '(A, F6.2, A, F6.2, A, F6.2)') 'Test ', input, ': Failed. Expected = ', expected, ', Got = ', result END IF END DO END SUBROUTINE RunTests ! Run the tests CALL RunTests() END PROGRAM TestExample
Aufbau einer Testsuite in Fortran
In Fortran gibt es keine eingebaute Testsuit-Struktur wie in einigen modernen Programmiersprachen. Daher müssen Entwickler Testsuiten manuell implementieren. Eine Testsuite in Fortran ist eine Sammlung von mehreren Testroutinen, die verschiedene Funktionen oder Teile des Fortran-Codes testen. Hier ist ein einfaches Beispiel, wie Sie eine Testsuite in Fortran erstellen können: Angenommen, ihr habt eine Fortran-Datei my_functions.f90, die einige Funktionen enthält, die ihr testen möchtet. Ihr könnt eine separate Testdatei test_my_functions.f90 erstellen, die eure Testsuite enthält. ! Datei: my_functions.f90 MODULE MyFunctions IMPLICIT NONE CONTAINS ! Funktion 1: Berechne das Quadrat einer Zahl REAL FUNCTION Square(x) REAL, INTENT(IN) :: x Square = x * x END FUNCTION Square ! Funktion 2: Berechne die Fakultät einer ganzen Zahl INTEGER FUNCTION Factorial(n) INTEGER, INTENT(IN) :: n INTEGER :: i, result result = 1 DO i = 1, n result = result * i END DO Factorial = result END FUNCTION Factorial END MODULE MyFunctions ! Datei: test_my_functions.f90 PROGRAM TestSuite USE MyFunctions IMPLICIT NONE ! Testroutine für Square SUBROUTINE TestSquare REAL :: input, result, expected ! Testfälle: (input, erwartetes Ergebnis) REAL, DIMENSION(3, 2) :: testCases testCases = RESHAPE(, ) WRITE(*, '(A)') 'Testing Square' DO i = 1, SIZE(testCases, 1) input = testCases(i, 1) expected = testCases(i, 2) result = Square(input) ! Assertion IF (result == expected) THEN WRITE(*, '(A, F6.2, A, F6.2)') 'Test ', input, ': Passed. Result = ', result ELSE WRITE(*, '(A, F6.2, A, F6.2, A, F6.2)') 'Test ', input, ': Failed. Expected = ', expected, ', Got = ', result END IF END DO END SUBROUTINE TestSquare ! Testroutine für Factorial SUBROUTINE TestFactorial INTEGER :: input, result, expected ! Testfälle: (input, erwartetes Ergebnis) INTEGER, DIMENSION(3, 2) :: testCases testCases = RESHAPE(, ) WRITE(*, '(A)') 'Testing Factorial' DO i = 1, SIZE(testCases, 1) input = testCases(i, 1) expected = testCases(i, 2) result = Factorial(input) ! Assertion IF (result == expected) THEN WRITE(*, '(A, I3, A, I6)') 'Test ', input, ': Passed. Result = ', result ELSE WRITE(*, '(A, I3, A, I6, A, I6)') 'Test ', input, ': Failed. Expected = ', expected, ', Got = ', result END IF END DO END SUBROUTINE TestFactorial ! Hauptprogramm der Testsuite CALL TestSquare() CALL TestFactorial() END PROGRAM TestSuite
Wie man den Fehler hätte verhindern können?
Grundsätzlich gehe ich davom aus das die NASA solche Testmethoden einsetzt und auch entsprechende Emulationen laufen hat? Trotzdem wundert es das man hier eben doch falsche Befehle versendet hat. Entweder ist es menschliches Versagen, oder die Befehle wurden nicht ausreichend geprüft? Das Testen von falschen oder fehlerhaften Befehlen in Fortran kann schwierig sein, da der Fortran-Compiler normalerweise während der Kompilierung Fehler in ungültigen Befehlen erkennt und den Kompilationsprozess beendet. Dennoch könnt ihr in einigen Fällen Testfälle erstellen, um zu überprüfen, wie Ihr Code mit fehlerhaften Befehlen umgeht. Hier sind einige Möglichkeiten, wie ihr falsche Befehle in Fortran testen könntet: - Ungültige Variablennamen: Erstellt Testfälle mit ungültigen oder nicht deklarierten Variablennamen, um zu überprüfen, wie euer Code auf solche Fehler reagiert. - Syntaxfehler: Erstellt Testfälle mit fehlerhaften Syntaxkonstruktionen, wie beispielsweise fehlenden Klammern, falschen Zeichenketten oder fehlenden Semikolons. - Falsche Datentypen: Überprüft, wie euer Code auf ungültige Datentypen reagiert, z. B. wenn ihr versucht, eine Zeichenkette in eine ganze Zahl umzuwandeln oder umgekehrt. - Ungültige Compilerdirektiven: Testet, wie euer Code auf ungültige oder nicht unterstützte Compilerdirektiven reagiert. - Fehlerhafte Ein-/Ausgabeoperationen: Testet, wie euer Code auf fehlerhafte Ein-/Ausgabeoperationen reagiert, z. B. wenn ihr versucht, in eine geschlossene Datei zu schreiben oder von einer nicht vorhandenen Datei zu lesen. Die folgenden Beispiele zeigen, wie einige der oben genannten Szenarien in einer Testumgebung aussehen könnten: FUNCTION Divide(a, b) REAL, INTENT(IN) :: a, b REAL :: Divide IF (b == 0.0) THEN WRITE(*, '(A)') 'Error: Division by zero.' STOP END IF Divide = a / b END FUNCTION Divide SUBROUTINE TestNegativeDivision REAL :: result ! Negative Test: Division durch Null result = Divide(5.0, 0.0) ! Erwartung: Fehlermeldung "Error: Division by zero." END SUBROUTINE TestNegativeDivision FUNCTION GetStringLength(str) CHARACTER(*), INTENT(IN) :: str INTEGER :: GetStringLength GetStringLength = LEN_TRIM(str) END FUNCTION GetStringLength SUBROUTINE TestInvalidStringLength INTEGER :: length CHARACTER(5) :: myString = "Hello" ! Negative Test: Zuweisen eines zu langen Strings zu einer begrenzten Zeichenkette length = GetStringLength(myString) ! Erwartung: Compilerfehler oder Laufzeitfehler END SUBROUTINE TestInvalidStringLength Diese Beispiele zeigen, wie ihr Testfälle erstellen könnt, die fehlerhafte Befehle in eurem Fortran-Code auslösen, um sicherzustellen, dass euer Code angemessen auf solche Fehler reagiert. Wie in jeder anderen Sprache sollte man auch die entsprecchenden Workflows einhalten. Es geht immer um den Test von Schwachstellen, daher ergeben sich auch immer die gleichen Szenarieren im Test. Statische Code-Analyse: Statische Code-Analysetools durchsuchen euren Quellcode, um mögliche Schwachstellen und Fehler zu erkennen, ohne den Code tatsächlich auszuführen. Diese Tools können beispielsweise potenzielle Speicherzugriffsfehler, uninitialisierte Variablen oder unsichere Aufrufe von Funktionen erkennen. Einige gängige statische Analysetools für Fortran sind: - Frama-C: Ein Framework für die statische Analyse von C- und Fortran-Code. - FortranLint: Ein kommerzielles statisches Analysetool für Fortran. Dynamische Code-Analyse: Dynamische Code-Analysetools führen Ihren Code aus und überwachen sein Verhalten zur Laufzeit. Diese Tools können Laufzeitfehler, Speicherlecks und andere potenzielle Probleme erkennen. Beim Testen von Fortran ist es wichtig, Ihre Tests mit verschiedenen Eingabewerten und Grenzfallbedingungen durchzuführen. Mit selbst ist nur ein Tool bekannt welches Entsprechend ab Fortran 77 eingesetzt werden kann: Code-Reviews: Peer-Reviews und Sicherheitsüberprüfungen sind ebenfalls wichtige Schritte, um potenzielle Schwachstellen im Code zu entdecken. Lassen Sie andere Entwickler Ihren Code überprüfen und Feedback geben, um mögliche Sicherheitslücken zu identifizieren.
Kann man diesen Testcode automatisieren?
Ja, ihr könnt den Testcode in Jenkins oder GitHub in einer Pipeline automatisieren, um eine kontinuierliche Integration und automatisierte Testabläufe zu ermöglichen. Beide Plattformen bieten Möglichkeiten, Skripte und Tests in einer Pipeline zu definieren und auszuführen, um sicherzustellen, dass euer Code kontinuierlich getestet wird. Es wundert mich das dieser fehler gerade der NASA passiert ist, denn einige der oben genannten Testframeworks sind eigene Entwicklungen von NASA Mitarbeitern. Beispiel Jenkins: In Jenkins könnt ihr eine Pipeline erstellen, um eure Fortran-Tests zu automatisieren. Ein einfacher Jenkins-Pipeline-Code könnte wie folgt aussehen: pipeline { agent any stages { stage('Build') { steps { // Hier den Code aus dem Repository klonen und den Fortran-Compiler ausführen, um den Code zu kompilieren } } stage('Test') { steps { sh 'gfortran -o test_my_functions test_my_functions.f90 my_functions.f90' // Kompilieren des Testcodes sh './test_my_functions' // Ausführen der Testsuite } } } } Beispiel Github Actions; In GitHub können Sie eine ähnliche Pipeline in Form von GitHub Actions erstellen. GitHub Actions ermöglicht es Ihnen, den Testcode in einer YAML-Datei zu definieren, die im Repository gespeichert wird. Read the full article
0 notes
Text
Future GPX Cyber Formula OVA 11 (episode 1)
#future gpx cyber formula#clair fortran#anime#anime 90s#anime gif#sunrise#クレア・フォートラン#新世紀GPXサイバーフォーミュラ
12 notes
·
View notes
Text
Depending on the version of Fortran, you may have made the right decision.

3K notes
·
View notes
Text
ISBN: 978-960-645-666-4 Συγγραφέας: Αλέξανδρος Σ. Καράκος Εκδότης: Κλειδάριθμος Σελίδες: 486 Ημερομηνία Έκδοσης: 2024-12-01 Διαστάσεις: 24 x 17 Εξώφυλλο: Χαρτόδετο
0 notes
Photo


Today’s compilation:
Tonal Evidence (usa) 1991 Alternative Rock / Alternative Dance / Industrial / Synthpop / Experimental
Folks, I gotta say that I'm pretty beside myself with regards to this album; not because the music's bad—a lot of it's great!—but because I can't find almost any of these highlights on YouTube. And, I mean, we're talking London's Mute Records here, one of the biggest and most successful alternative labels in the world since its early 80s founding. You'd think every song in their catalogue would be up on YouTube by now, but apparently not. Either no one's uploaded any of this good music that's on this album or Mute practices in the dark art of copyright takedowns like nobody else's business. Either way, it's a shame that I can't make most of this stuff easily accessible to you all 😔.
That said, though, this early 90s compilation from Mute is really good. They're known for being on the forefront of alternative rock, alternative dance, industrial music, and synthpop, and with this US-tailored 1991 sampler of theirs, you get a nice taste of all of that stuff 😋.
Plus, a whole bunch of these songs were exclusives when they appeared on this album too. They may have popped up elsewhere since, but back in '91, if you purchased this CD, you were getting a sweet handful of rare goodies. And now that you can't find them anywhere to stream, I guess they're rare once again 😅. Funny how that works, eh?
Anyway, it doesn't always happen with late 80s and early 90s releases, because the music can feel a little bit primitive at times, but I think I'm more partial to the dance music that's on here than the alternative rock. Kris Weston, a guy who goes by Thrash, and who did other remixes for acts like Depeche Mode and U2 around this same time, does a sweet techno remix of Fortran 5's "Love Baby;" John Robie, a close associate of Arthur Baker, and who played synthesizers on Afrika Bambaataa & The Soulsonic Force's "Planet Rock," delivers a wild, cold, and thick electro remix of Cabaret Voltaire's "Yashar;" and there's a dynamite radio mix of "10 X Faster Than the Speed of Love," by Meat Beat Manifesto, one of the most important alt-electronic groups that's ever existed, and whose breakbeat stylings certainly served as an inspiration to the dawnings of trip hop, big beat, and drum n bass—all with an industrial edge too.
Plus, a shoegazey bit of early 90s indie pop from a Swedish band called Easy. They're actually still around after all these years, having released a brand new album just a few weeks ago. But this song, "Cloud Chamber," which is the second song off their 1990 debut album, Magic Seed, catches them in some of their very earliest days. Pleasant jangle-honking indie fare right there.
Awesome sampler with an eclectic slate that reflects all the different types of alternative music that Mute had its hand in shaping, but I've got almost no links to any of it 😞. Oh well.
Feel free to message me directly if you really wanna hear this album!
Highlights:
Fortran 5 - "Love Baby (Electropathy Mix)" Cabaret Voltaire - "Yashar (John Robie Mix)" Meat Beat Manifesto - "10 X Faster Than the Speed of Love (Radio Mix)" Renegade Soundwave - "Biting My Nails (1990 Remix)" The Weathermen - "Freedom Or Slavery (Conclusive Edit)" Easy - "Cloud Chamber"
#alternative rock#alternative#alternative music#alt rock#alt#alt music#rock#alternative dance#alt dance#dance#dance music#industrial#industrial music#synthpop#synth pop#pop#experimental#experimental music#experimental electronic#electronic#electronic music#music#80s#80s music#80's#80's music#90s#90s music#90's#90's music
20 notes
·
View notes
Text
Critical media #522
As fascinating as it is for me to think about the idea that the process of using software is actually a computer translating human languages into numeric representations in the same way that the computer can also translate the opposite from human languages into numeric representations. The fact that by using high-level programming languages makes it easier for people to forget about the machine and concentrate on what they are doing.
It was through these high-level programming languages that people were able to become capable of building their own solutions to a wide range of problems, and it no longer became necessary to have a specialized programmer in order to solve the problem.
FORTRAN is the early programming language that is especially suited to numerical computation and scientific computing. After doing some research on the FORTRAN language, I realized some interesting facts that are worth mentioning:
FORTRAN stands for Formula Translation, and since the early IBM computers back then did not support lowercase letters, the names of the versions of the language through FORTRAN 77 had to be written in all uppercase letters.
The first version of the UNIX operating system was also written in FORTRAN.
The FORTRAN 77 language, which was developed in 1977, is still in use today.
A number of new features were added to FORTRAN 90, the next version of the language, including the ability to write free-form source code, improved array handling, and others.
Object-oriented programming features were added to FORTRAN 2003 and 2008, as well as interoperability with C and C++.
New versions of FORTRAN are still being developed, and many scientists and engineers still use the language.
In the beginning, programming was a gender-neutral field because it was a new idea at the time. In my opinion, it was unimaginable that women were better at it and there was a higher demand for them because of their ability to perform repetitive, clerical tasks in an efficient manner. In addition, as a woman, I found the fact that they were being overlooked because of their responsibilities as a mother and wife in society to be very sad. Over the past few decades, women have played an increasingly important role in computer programming as a whole. Many women worked as human "computers" in the early days of computing, performing calculations for engineers and scientists manually. The number of women in computer science began to decline as the field grew and became more professional. There was an increase in the number of women studying computer science in the 1960s and 1970s, but they continued to face discrimination and bias at work. However, a number of women made significant contributions to the field, such as Ada Lovelace, considered the first computer programmer. The number of women in computer science began to drop again in the 1980s and 1990s. By the early 2000s, only about 25% of computer science workers were women. Women have been encouraged to pursue careers in computer science during the past few years, and the number of women studying and working in the field has increased. However, women still face significant challenges in the field, such as a persistent gender pay gap and a lack of representation in leadership positions. While many organizations and initiatives are working to promote diversity and inclusion in the field and encourage more women to pursue careers in computer programming, there remains a long way to go.
3 notes
·
View notes
Photo

Сегодня у нас одна из книг, купленных мной пару месяцев назад с рук. Называется она - "128 советов начинающему #программист ", авторы - Юрий Васильевич Пухначев и Валерий Федорович Очков Интересная #книга , которая, к сожалению, попала мне в руки только сейчас. Сколько бы я отдал за то, чтобы заиметь ее в моем спектрумистском детстве... В книге приведены программы решения различных задач на компьютере, а также различные игры. Программы написаны на языках #basic, #pascal, #fortran, #modula2 и в машинном коде. Основной упор в книге сделан на иллюстрацию разнообразных приемов алгоритмизации и программирования, освещение вопросов взаимодействия человека с компьютером. #zxspectrum #zxspectrum48k #zxspectrum128k #zxspeccy #90s #8bit #sinclair #retrogaming #retrogames #retrogamer #oldgames #oldpc #coding #спектрум #спекки #8бит #90е #синклер #ретроигры #ретрокомпьютер #старыеигры #программирование #кодинг (at Nizhnevartovsk)
#zxspeccy#oldpc#fortran#retrogamer#zxspectrum48k#zxspectrum128k#sinclair#pascal#coding#старыеигры#basic#кодинг#90s#ретрокомпьютер#8bit#книга#программист#zxspectrum#спекки#retrogaming#синклер#8бит#спектрум#oldgames#ретроигры#retrogames#программирование#90е#modula2
1 note
·
View note